SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
GUÍA DE EJERCICIOS RESUELTOS

                    TEMA 4:

      RUTINAS INTERMEDIAS, TABLAS Y
           ESTRUCTURA DE CONTADORES




Prof. Luis Zurita      1       Microcontroladores I
1. Diseñe un contador de 4 cifras para una empresa enlatadora de
       pescado. Diseño Libre.
                                     SOLUCIÓN:

Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del
enunciado, pero al ser diseño libre, como la mayoría de los problemas que nos
tocarán realizar, debemos asignarle los pines de entrada y salida de control del
microcontrolador.

Una sugerencia es la siguiente:

   ENTRADA          ¿Qué   pin SALIDA                   ¿Qué               pin
                    Asignamos?                          Asignamos?
 Sensor Latas       RA4        Salida       Decodificar RB0 – RB3
                               7448
                                  Salida   Multiplexación RA0-RA3
                                  Displays



¿Por qué un 7448 y no un 7447? ¿Por qué un cátodo común y no un ánodo
común?

Como es diseño libre, la elección depende del diseñador, en otros diseños
elegiremos el ánodo común, generalmente el consumo de corriente utilizando un
decodificador es casi el mismo para cualquiera de los dos modelos disponibles
de displays, más no así cuando no se utiliza un decodificador, y se controla
directamente con un puerto de un microcontrolador. Generalmente en los
sistemas digitales se prefiere trabajar como sumidero o vertidero y no como
fuente de corriente.




Prof. Luis Zurita                       2                   Microcontroladores I
El hardware quedaría delimitado de la siguiente manera:




                                                                            VDD                     RA4


                                                                                              SW1
                                                                                  RZ1         SW -SPDT
                                                                                  1k




                                                                        SW 1(NC)
              C1
                                                             VSS


              22p                        U1
                          X1        16
                                          OSC1/CLKIN      RA0
                                                                   17
                                                                        RA0
                          CRYSTAL   15                             18
                                          OSC2/CLKOUT     RA1           RA1
                                                                   1
              C2                                          RA2           RA2
                                    4                              2
                                          MCLR            RA3           RA3
                                                                   3
        VSS                                          RA4/T0CKI          RA4U2
                    VDD                                                                             R55
              22p                                                  6    7                    13     R66
                                                        RB0/INT               A         QA
                                                                   7    1                    12     R14
                                                                                                    330R
                                                           RB1                B         QB
                                                                   8    2                    11     R13
                                                                                                    330R
                                                           RB2                C         QC
                                                                   9    6                    10     R15
                                                                                                    330R
                                                           RB3                D         QD
                                                                   10   4                    9      R12
                                                                                                    330R
                                                           RB4                BI/RBO    QE
                                                                   11   5                    15     R33
                                                                                                    330R
                                                           RB5                RBI       QF
                                                                   12   3                    14     330R
                                                           RB6                LT        QG
                                                                   13                               330R
                                                           RB7
                                                                             74LS48
                                         PIC16F84A                                                                                                         Q11          2N3904
                                                                                                                           Q1          2N3904          2N3904
                                                                                                                       2N3904                   RA0
                                                                                                                 RA2            RA1                                         Q22
                                                                                             RA3                                           Q2


                                                                                                                                                                       R31
                                                                                                                                      R3              R25              1k
                                                                                                                      R4              1k              1k
                                                                                                                      1k



                                                                                                                                                VSS              VSS
                                                                                                                VSS             VSS




Prof. Luis Zurita                                                  3                                       Microcontroladores I
Paso 2. Diagramas de Flujo:

                                     INICIO                      MOSTRAR


                              Declarar registros:              UNI → PORTB
                             UNI, DEC, CEN, UMIL

                                                              Display UNI=ON
                                  Configurar                Resto Displays= OFF
                                 Puerto A y B

                                                                 Delay 5 ms
                              Inicializar registros:
                             UNI, DEC, CEN, UMIL
                                  Puerto A y B
                                                              DEC → PORTB
              1

                                  MOSTRAR                     Display DEC=ON
                                                            Resto Displays= OFF


                         NO        ¿Se activó
                                    Sensor?                      Delay 5 ms

                                           SI
                                                              CEN → PORTB
                                  Delay 5 ms

                                                              Display CEN=ON
                                                            Resto Displays= OFF
                        NO       ¿Se desactivó
                                   Sensor?
                                                                 Delay 5 ms
                                           SI

           UNI=UNI+1     NO          ¿UNI=                    UMIL → PORTB
                                      9?
                                           SI                Display UMIL=ON
              1                      UNI=0                  Resto Displays= OFF



                         NO         ¿DEC=                        Delay 5 ms
          DEC=DEC+1
                                      9?
                                       SI                  Todos los Displays= OFF
               1                    DEC=0

                                                                   Return
                         NO         ¿CEN=
          CEN=CEN+1
                                      9?
                                            SI
               1                                                 Delay 5 ms
                                    CEN=0



                         NO         ¿UMIL=                  La sacamos del PDEL
          UMIL=UMIL+1
                                      9?
                                            SI                     Return
               1
                                    UMIL=0


                                       1




Prof. Luis Zurita                                      4          Microcontroladores I
Nota: observe en el diagrama de flujo anterior, que las subrutinas que son
llamadas dentro del programa principal, deben ser expresadas como diagramas
de flujo adicionales para su entendimiento y posterior conversión al lenguaje
ensamblador.

Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador:



              LIST      P=16F84A           ;Encabezado del Programa
              INCLUDE   P16F84A.INC

UNI           EQU       21H                ;Zona de declaraciones
DEC           EQU       22H
CEN           EQU       23H
UMIL          EQU       24H
PDel0         EQU       25H
PDel1         EQU       26H

              ORG       00H
              GOTO      INICIO

INICIO        BSF       STATUS,5           ;Banco 1
              movlw     B'00010000'        ;Configuramos Puerto A y B
              movwf     TRISA
              CLRF      TRISB
              BCF       STATUS,5           ;Regresamos al Banco 0 a trabajar

INICIAR       CLRF      UNI                ;Inicializamos los registros
              CLRF      DEC
              CLRF      CEN
              CLRF      UMIL
EXPLORA       CALL      DISPLAYS           ;Llamamos Subrutina de Displays
              BTFSC     PORTA,4            ;Preguntamos si Sensor se activó
              GOTO      EXPLORA            ;No, Seguimos esperando
AQUI          CALL      DEMORA             ;Si, Introducimos Antirrebote
              BTFSS     PORTA,4
              GOTO      AQUI
              MOVF      UNI,0              ;Preguntamos si UNI=9?

Prof. Luis Zurita                     5                   Microcontroladores I
SUBLW      .9
         BTFSS      STATUS,2
         GOTO       SUBEUNI           ;No, vamos a incrementar UNI
         CLRF       UNI               ;Si, UNI=0
         MOVF       DEC,0             ;Preguntamos si DEC=9
         SUBLW      .9
         BTFSS      STATUS,2
         GOTO       SUBEDEC           ;No, vamos a incrementar DEC
         CLRF       DEC               ;Si, DEC=0
         MOVF       CEN,0             ; Y hacemos lo mismo con CEN
         SUBLW      .9                ;y Unidad de mil (UMIL)
         BTFSS      STATUS,2
         GOTO       SUBECEN
         CLRF       CEN
         MOVF       UMIL,0
         SUBLW      .9
         BTFSS      STATUS,2
         GOTO       SUBEUMIL
         CLRF       UMIL
         GOTO       EXPLORA
SUBEUNI INCF        UNI,1             ;UNI= UNI+1
         GOTO       EXPLORA           ;Vamos a ver si ha pasado   otra lata
SUBEDEC INCF        DEC,1             ;DEC= DEC+1
         GOTO       EXPLORA           ;Vamos a ver si ha pasado   otra lata
SUBECEN INCF        CEN,1             ;CEN= CEN+1
         GOTO       EXPLORA           ;Vamos a ver si ha pasado   otra lata
SUBEUMIL INCF       UMIL,1            ;UMIL= UMIL+1
         GOTO       EXPLORA           ;Vamos a ver si ha pasado   otra lata

DISPLAYS MOVF       UNI,0             ;Subrutina para mostrar datos en
         MOVWF      PORTB             ;Displays bajo la técnica de la
         MOVLW      B'11111110'       ;Multiplexación
         MOVWF      PORTA
         CALL       DEMORA
         movlw      0ffh
         movwf      PORTA
         MOVF       DEC,0
         MOVWF      PORTB


Prof. Luis Zurita                 6                 Microcontroladores I
MOVLW       B'11111101'
             MOVWF       PORTA
             CALL        DEMORA
             movlw       0FFH
             movwf       PORTA
             MOVF        CEN,0
             MOVWF       PORTB
             MOVLW       B'11111011'
             MOVWF       PORTA
             CALL        DEMORA
             movlw       0ffh
             movwf       PORTA
             MOVF        UMIL,0
             MOVWF       PORTB
             MOVLW       B'11110111'
             MOVWF       PORTA
             CALL        DEMORA
             movlw       0ffh
             movwf       PORTA
             CALL        DEMORA
             RETURN
;****************************************************
;*** Rutina de retardo de 5 ms, generada por el PICDEL***
;****************************************************
DEMORA       movlw       .248         ; 1 set numero de repeticion
             movwf       PDel0        ;1|
PLoop0       clrwdt                   ; 1 clear watchdog
             decfsz      PDel0, 1     ; 1 + (1) es el tiempo 0 ?
             goto        PLoop0       ; 2 no, loop
PDelL1       goto        PDelL2       ; 2 ciclos delay
PDelL2       clrwdt                   ; 1 ciclo delay
             return            ; 2+2 Fin.
             END                      ;Fin del programa.




Prof. Luis Zurita                      7                   Microcontroladores I
2. Diseñe un contador de dos cifras ascendente, sin utilizar un
        decodificador. Diseño libre.
                                                            SOLUCIÓN:

Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del
enunciado, pero al ser diseño libre, debemos asignarle los pines de entrada y
salida de control del microcontrolador.

        Una sugerencia es la siguiente:

   ENTRADA               ¿Qué   pin SALIDA                  ¿Qué                                       pin
                         Asignamos?                         Asignamos?
 Pulsador                RA4        Salidas a los segmentos RB0 – RB7
                                    del display
                                                   Salida   Multiplexación RA0 (Unidad)
                                                   Displays                RA1 (Decena)

El hardware quedaría delimitado de la siguiente manera:




                                                                     R1
                                                                     1k

         C1

         22p                       U?
                    X?        16
                                    OSC1/CLKIN      RA0
                                                            17
                    CRYSTAL   15                            18
         C?                         OSC2/CLKOUT     RA1
                                                            1
                                                    RA2
                              4                             2
                                    MCLR            RA3
                                                            3
  VSS                                          RA4/T0CKI
         22p
                                                            6
                                                  RB0/INT
                                                            7
                                                     RB1
                                                            8
                                                     RB2
                                                            9
                                                     RB3
                                                            10
                                                     RB4
                                                            11
                                                     RB5
                                                            12
                                                     RB6
                                                            13
                                                     RB7
                                   PIC16F84A



                                                                          R2   Q1
                                                                               2N3904
                                                                          1k




                                                                          R3   Q?
                                                                               2N3904
                                                                          1k




Prof. Luis Zurita                                                8                      Microcontroladores I
Paso 2. Diagramas de Flujo:

                           INICIO                                         MOSTRAR


                    Declarar registros:
                                                                          UNI → W
                        UNI, DEC


                        Configurar                                         TABLA
                       Puerto A y B

                                                                         W → PORTB
                    Inicializar registros:
                          UNI, DEC
                                                                      Display UNI= ON
                        Puerto A y B
                                                                     Display DEC= OFF
      1

                        MOSTRAR                                           Delay 5 ms


                                                                          DEC → W
               NO        ¿Se activó
                         Pulsador?

                                  SI                                       TABLA

                        Delay 5 ms
                                                                         W → PORTB


                                                                     Display UNI= OFF
              NO       ¿Se desactivó                                 Display DEC= ON
                        Pulsador?

                                  SI                                      Delay 5 ms

               NO          ¿UNI=
  UNI=UNI+1                                                       Todos los Displays= OFF
                            9?
                                  SI
      1                    UNI=0                                            Return



               NO         ¿DEC=
  DEC=DEC+1
                            9?                       TABLA                             Delay 5 ms
                                  SI
      1                   DEC=0
                                                 W + PCL → PCL                 La sacamos del PDEL
                              1
                                             Retornamos con el valor
                                                                                         Return
                                             en W extraido de la tabla


                                                      Return




Prof. Luis Zurita                            9                               Microcontroladores I
Paso 3. Lenguaje ensamblador:

              LIST      P=16F84A
              INCLUDE   P16F84A.INC

              ORG       00H
              GOTO      INICIO
UNI           EQU       20H        ;Registro con el valor de la UNIDAD
DEC           EQU       21H        ;Registro con el valor de la DECENA
PDel0         EQU       24H        ;Registro para retardo
PDel1         EQU       25H        ;Registro para retardo
PDel2         EQU       26H        ;Registro para retardo
PDel3         EQU       27H        ;Registro para retardo
PDelX5        EQU       2AH        ;Registro para retardo
CONTA         equ       2bh        ;Contador para decodificación con tabla

INICIO        BSF       STATUS,5
              CLRF      TRISB    ; Se configura al Puerto B como salida
                                 ; para manejar los displays
         BCF            TRISA,0  ; Selector de display de UNIDAD
         BCF            TRISA,1  ; Selector de display de DECENA
         BSF            TRISA,4  ; Pulsador de incremento de cuenta
         BCF            STATUS,5 ;Banco 0.
         CLRF           UNI      ;Inicializamos registros y puerto B
         CLRF           DEC
         clrf           PORTB
SUBE     CALL           MOSTRAR
         BTFSC          PORTA,4  ; Se ha pulsado INCREMENTO?
         GOTO           SUBE     ;No. Seguimos explorando
AUMENTA CALL            RET5mS   ; Retardo de 5 ms, elimina rebotes.
         BTFSS          PORTA,4  ;Esperamos a que se suelte Pulsador
         GOTO           AUMENTA
         MOVLW          09H      ;Preguntamos si UNI=9
         SUBWF          UNI,0
         BTFSC          STATUS,0
         GOTO           SUBEDEC ;Si. Vamos a preguntar por la Decena
         INCF           UNI,1
         CALL           MOSTRAR ;Muestra datos en Displays
         GOTO           SUBE

Prof. Luis Zurita                   10                  Microcontroladores I
SUBEDEC     CLRF       UNI
            MOVLW      09H           ;Preguntamos si Decena=9
            SUBWF      DEC,0
            BTFSC      STATUS,0
            GOTO       RONDA         ;Si, vamos a RONDA
            INCF       DEC,1         ;No. Incrementamos Decena
            CALL       MOSTRAR       ;Muestra datos en Displays
            GOTO       SUBE          ;Vamos a preguntar por Pulsador
RONDA       CLRF       DEC
            CALL       MOSTRAR
            GOTO       SUBE
;************************
;***RUTINA MOSTRAR***
;************************
MOSTRAR BCF            PORTA,1
            BSF        PORTA,0       ; Se selecciona el display de UNIDAD
            MOVF       UNI,0         ; Y se muestra el dato
            CALL       TABLA         ;Vamos a Tabla para extraer dato
                                     ;Equivalente al registro UNIDAD
              MOVWF    PORTB
              CALL     RET1mS        ;Se espera 1 ms para la
                                     ;multiplexación de display
              BCF      PORTA,0
              MOVLW    b'11111111'
              MOVWF    PORTB         ;Limpiamos Puerto B
              BSF      PORTA,1       ; Se selecciona el display de DECENA
              MOVF     DEC,0         ; Y se muestra el dato
              CALL     TABLA
              MOVWF    PORTB
              CALL     RET1mS        ; se espera 1 ms para la multiplexación
              BCF      PORTA,1
              MOVLW    B'11111111'
              MOVWF    PORTB
              return




Prof. Luis Zurita                    11                   Microcontroladores I
;****************************************************
;****TABLA DE CONVERSIÓN BCD A 7 SEGMENTOS****
;****************************************************
; Esta tabla se encarga de convertir los datos en BCD en formato de 7
;segmentos para visualizarce en los displays. Compare con el ejercicio 2 de la
;guía de ejercicios resueltos del tema 3.
TABLA         addwf       PCL,F
              retlw       b'11000000'         ;0
              retlw       b'11111001'         ;1
              retlw       b'10100100'         ;2
              retlw       b'10110000'         ;3
              retlw       b'10011001'         ;4
              retlw       b'10010010'         ;5
              retlw       b'10000010'         ;6
              retlw       b'11111000'         ;7
              retlw       b'10000000'         ;8
              retlw       b'10011000'         ;9

;***********************
;***RUTINA 0,5 SEG****
;***********************
; Esta rutina permite que entre la activacion de la señal sonora y su
; desactivacion exista 0,5 segundos de intervalo. Está generada por el
; PDEL
;***********************
RET05S       clrf         conta
ret5         movlw        .4           ; 1 set numero de repeticion (B)
             movwf        PDel0        ;1|
PLoop1       movlw        .186         ; 1 set numero de repeticion (A)
             movwf        PDel1        ;1|
PLoop2       clrwdt                    ; 1 clear watchdog
             decfsz       PDel1, 1     ; 1 + (1) es el tiempo 0 ? (A)
             goto         PLoop2       ; 2 no, loop
             decfsz       PDel0, 1     ; 1 + (1) es el tiempo 0 ? (B)
             goto         PLoop1       ; 2 no, loop
PDelL1       goto         PDelL2       ; 2 ciclos delay
PDelL2       clrwdt                    ; 1 ciclo delay



Prof. Luis Zurita                      12                   Microcontroladores I
;*******************************************
;***Rutina para eliminar rebotes por software***
;***RETARDO 5 mS**************************
;***Extraida del PDEL************************
RET5mS      movlw         .6          ; 1 set numero de repeticion (B)
            movwf         PDel2       ;1|
PLoop3      movlw         .207        ; 1 set numero de repeticion (A)
            movwf         PDel3       ;1|
PLoop4      clrwdt                    ; 1 clear watchdog
            decfsz        PDel3, 1    ; 1 + (1) es el tiempo 0 ? (A)
            goto          PLoop4      ; 2 no, loop
            decfsz        PDel2, 1    ; 1 + (1) es el tiempo 0 ? (B)
            goto          PLoop3      ; 2 no, loop
PDelL8      goto          PDelL9      ; 2 ciclos delay
PDelL9      clrwdt                    ; 1 ciclo delay
            return                    ; 2+2 Fin.

;*********************************************************
;***Rutina de 1 ms utilizado en la multiplexacion de los displays***
;*********************************************************
;Nota: Esta rutina es opcional, se puede utilizar perfectamente la misma de
;los 5 ms para la multiplexación de los displays.

RET1mS       MOVLW       D'248'      ;   1 set numero de repeticion
             MOVWF       PDelX5      ;   1|
PLoopX       CLRWDT                  ;   1 clear watchdog
             DECFSZ      PDelX5,1    ;   1 + (1) es el tiempo 0 ?
             GOTO        PLoopX      ;   2 no, loop
PDelLX1      GOTO        PDelLX2     ;   2 ciclos delay
PDelLX2      CLRWDT                  ;   1 ciclo delay
            RETURN                   ;   2+2 Fin.

              end




Prof. Luis Zurita                     13                    Microcontroladores I
3. Diseñe un semáforo de 4 esquinas. Utilice tabla. Diseño libre.
                                                                           SOLUCIÓN:

      Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del
      enunciado, pero al ser diseño libre, debemos asignarle los pines de entrada
      y salida de control del microcontrolador.

      Una sugerencia es la siguiente:

      ENTRADA                      ¿Qué   pin SALIDA                                                   ¿Qué               pin
                                   Asignamos?                                                          Asignamos?
 Pulsador                          RA4        Salidas a los semáforos                                  RB0 – RB7
 INICIO                                       12y3
                                                                      Salida a los semáforos RA0 –RA3
                                                                      3y4
      El hardware quedaría delimitado de la siguiente forma:


                                   VDD
                                                                                                S1

                                         R?                                           RB0
                                         1k

                                                                                      RB1
                       INICIO

                                                                                      RB2

      C1

      22p                  U?
            X?        16
                            OSC1/CLKIN         RA0
                                                        17
                                                             RA0
            CRYSTAL   15                                18
      C2                    OSC2/CLKOUT        RA1           RA1           RB6                                      RA1
                                                        1
                                               RA2           RA2

                                                                      S3                                                  S4
                      4                                 2
                            MCLR               RA3
                                         RA4/T0CKI
                                                        3
                                                             RA3
                                                             INICIO        RB7
                                                                                        SEMÁFORO                    RA2
      22p
                                                        6
VSS
                                              RB0/INT
                                                 RB1
                                                        7
                                                               RB0
                                                               RB1         RA0
                                                                                            CASCAJAL                RA3
                                                        8
                                                 RB2           RB2
                                                        9
                                                 RB3           RB3
                                                        10
                                                 RB4           RB4
                                                        11
                                                 RB5           RB5
                                                        12
                                                 RB6           RB6
                                                        13
                                                 RB7           RB7
                           PIC16F84A

                                                                                      RB3


                                                                                      RB4


                                                                                      RB5




                                                                                               S2




Prof. Luis Zurita                                                                14                     Microcontroladores I
Paso 2. Diagramas de Flujo:




Prof. Luis Zurita             15   Microcontroladores I
Nota: El PDEL permite generar rutinas de tiempo muy grandes, sin embargo,
como buena práctica podemos tener rutinas de tiempo variables en base a un
registro, como lo observamos en las subrutinas Delay 30 seg y Delay5 seg




Prof. Luis Zurita                    16                   Microcontroladores I
Paso 3. Lenguaje ensamblador:

              LIST      P=16F84A         ;Encabezado del programa
              INCLUDE   P16F84A.INC

CONTA         EQU       20H              ;Zona de declaraciones
CONTA2        EQU       21H
PDel0         EQU       22H
PDel1         EQU       23H
PDel2         EQU       24H

              ORG       00H
              GOTO      INICIO

INICIO        BSF       STATUS,5   ;Banco 1 para configurar puertos
              CLRF      TRISB      ;Se configura puerto A y B
              MOVLW     B'10000'
              MOVWF     TRISA
              BCF       STATUS,5   ;Banco 0 para trabajar con los puertos
              CLRF      CONTA      ;Inicializamos los registros y puertos
              CLRF      CONTA2
              CLRF      PORTA
              CLRF      PORTB
EMPIEZA       BTFSC     PORTA,4    ;Preguntamos si se presionó “INICIO”
              GOTO      EMPIEZA    ;No. Esperamos
NCICLO        CALL      MOSTRAR    ;Llamamos rutina “MOSTRAR”
              CALL      DELAY30S   ;Esperamos 30 segundos
              INCF      CONTA,1    ;Incrementamos contador de estados
              CALL      MOSTRAR
              CALL      DELAY5S    ;Esperamos 5 segundos
              MOVLW     07H
              SUBWF     CONTA,0    ;Si contador=7 reinicia ciclo
              BTFSS     STATUS,2
              GOTO      SUBE
              CLRF      CONTA
              GOTO      NCICLO
SUBE          INCF      CONTA,1
              GOTO      NCICLO


Prof. Luis Zurita                  17                    Microcontroladores I
MOSTRAR MOVF             CONTA,0 ;Se mueve Contador a W
            CALL         TABLA1     ;Se extrae de la TABLA 1 el valor
            MOVWF        PORTB      ;a mostrar por el Puerto B
            MOVF         CONTA,0 ;Luego se extraerá de la TABLA2
            CALL         TABLA2     ;El valor a mostrar por el Puerto A
            MOVWF        PORTA
            RETURN
;***********************************
;***Rutina de retardo de 30 segundos***
;***********************************
DELAY30S CLRF            CONTA2     ;CONTA2, va a contar hasta 30, que
OTROCALL RET1S                      ; y en cada cuenta se espera 1 segundo
            MOVLW        D'29'      ;Lo que nos dará la rutina de 30 segundos
            SUBWF        CONTA2,0
            BTFSS        STATUS,2
            GOTO         PREVIO
            RETURN
PREVIO      INCF         CONTA2,1
            GOTO         OTRO
;***********************************
;***Rutina de retardo de 5 segundos***
;***********************************
DELAY5S CLRF             CONTA2     ;CONTA2, va a contar hasta 5, que
OTRO2       CALL         RET1S      ; y en cada cuenta se espera 1 segundo
            MOVLW        D'4'       ;Lo que nos dará la rutina de 5 segundos
            SUBWF        CONTA2,0
            BTFSS        STATUS,2
            GOTO         PREVIO2
            RETURN
PREVIO2     INCF         CONTA2,1
            GOTO         OTRO2




Prof. Luis Zurita                    18                  Microcontroladores I
;***Rutina de retardo de 1 segundos extraida del PDEL ***
RET1S        movlw        .14           ; 1 set numero de repeticion (C)
             movwf        PDel0         ;1|
PLoop0       movlw        .72           ; 1 set numero de repeticion (B)
             movwf        PDel1         ;1|
PLoop1       movlw        .247          ; 1 set numero de repeticion (A)
             movwf        PDel2         ;1|
PLoop2       clrwdt                     ; 1 clear watchdog
             decfsz       PDel2, 1      ; 1 + (1) es el tiempo 0 ? (A)
             goto         PLoop2        ; 2 no, loop
             decfsz       PDel1, 1      ; 1 + (1) es el tiempo 0 ? (B)
             goto         PLoop1        ; 2 no, loop
             decfsz       PDel0, 1      ; 1 + (1) es el tiempo 0 ? (C)
             goto         PLoop0        ; 2 no, loop
PDelL1       goto         PDelL2        ; 2 ciclos delay
PDelL2       clrwdt                     ; 1 ciclo delay
             return                     ; 2+2 Fin.
;***La tabla 1 contiene el valor que se va a mostrar por el Puerto B***
TABLA1       ADDWF        PCL,1
             RETLW        4CH
             RETLW        4AH
             RETLW        61H
             RETLW        51H
             RETLW        09H
             RETLW        89H
             RETLW        49H
             RETLW        49H
;***La tabla 2 contiene el valor que se va a mostrar por el Puerto A***
TABLA2       ADDWF         PCL,1
             RETLW        02H
             RETLW        02H
             RETLW        02H
             RETLW        02H
             RETLW        03H
             RETLW        02H
             RETLW        08H
             RETLW        04H
             END


Prof. Luis Zurita                      19                   Microcontroladores I
4. Se desea diseñar un sistema de protección para una línea de
       ensamblaje que contiene 4 máquinas soldadoras.

          M1 (RA0)      M2 (RA1)     M3 (RA2) M4 (RA3)
          Máquina activa= 1          Máquina inactiva= 0
* Cada máquina tiene dos leds que indican si están funcionando:

          (Led Verde=ON) o si están apagadas (Led Rojo=ON).
* Si ninguna máquina está activa, debe activarse adicionalmente una señal
sonora (RA4).

Nota: Vamos a realizar el mismo problema que hicimos en la guía de ejercicio
anterior, pero ahora con el uso de una tabla, veamos si el problema se
simplifica o no.




Prof. Luis Zurita                     20                   Microcontroladores I
SOLUCIÓN:

Paso 1. Enunciado y delimitación del Hardware: si el enunciado y el hardware
ya se nos ha proporcionado, saltaremos este paso.



Paso 2. Diagramas de Flujo:


                            INICIO                    TABLA


                          Configurar
                         Puerto A y B            W + PCL → PCL
                1
                                              Retornamos con el valor
                         PuertoA → W          en W extraido de la tabla
                                               correspondiente a los
                                               sensores de Puerto A
                           TABLA

                                                       Return
                         W → PuertoB

                                                ¿Todas las
                                               máquinas están
                    NO       ¿W=                apagadas?
   ALARMA= OFF
                         B'01011010'?

          1                       SI

                         ALARMA= ON


                              1




Prof. Luis Zurita                       21                  Microcontroladores I
Paso 3. Lenguaje Ensamblador:

              list       P=16F84A ;Encabezado del programa
              include    P16F84A.inc

              org        00H
              goto       INICIO

INICIO     bsf           STATUS,5 ;Configuramos Puerto A y B
           movlw         0FH
           movwf         TRISA
           clrf          TRISB
           bcf           STATUS,5
           clrf          PORTB
           bcf           PORTA,4
CICLO      movf          PORTA,0    ;Leemos los sensores
           andlw         0FH        ;Aplicamos enmascaramiento
           call          TABLA      ;Llamamos la tabla
           movw          PORTB      ;Sacamos el dato hacia los indicadores
           sublw         5AH        ;Preguntamos si todas las máquinas=OFF
           btfss         STATUS,2
           goto          NOALARMA ;No. Mantenemos Alarma=OFF
ALARMA     bsf           PORTA,4    ;Si. Alarma=ON
           goto          CICLO      ;Vamos a explorar los sensores de nuevo
NOALARMA bcf             PORTA,4
           goto          CICLO
TABLA      addwf         PCL,1
           DT            5AH, 59H, 56H, 55H, 6AH, 69H, 66H, 65H, 9AH,
99H, 96H, 95H, 0AAH,    0A9H, 0A6H, 0A5H

;DT es una directiva para declarar tablas y tiene el mismo efecto que usar el
retlw K:
;           retlw        5AH ;Nota: estos son los valores que corresponden
;           retlw        59H ;a la combinación de sensores y leds de salida
;           retlw        56H
;           retlw        55H
;           retlw        6AH
;           retlw        69H
;           retlw        66H

Prof. Luis Zurita                     22                   Microcontroladores I
;               retlw                           65H
;               retlw                           9AH
;               retlw                           99H
;               retlw                           96H
;               retlw                           95H
;               retlw                           0AAH
;               retlw                           0A9H
;               retlw                           0A6H
;               retlw                           0A5H
                END

Nota: Este programa posee 24 líneas si utilizamos la directiva DT y 40 si
utilizamos las instrucciones retlw k, mientras que el realizado en la guía de
ejercicios anterior posee 67 líneas, lo que demuestra que se simplifica en
código y lógica de trabajo.
       El uso de las tablas tiene aplicaciones muy importantes en los
microcontroladores.


          El circuito de las máquinas en el Proteus quedaría así:


                                                           VDD                                                                VDD
                                                                                              VDD                                                               VDD




                                                                 R1                                                                 R5
                                                                 1k                                 R4                              1k                                R6
                                                                      MÁQUINA 1
                                                                       SW1
                                                                                                    1k   MÁQUINA 2
                                                                                                          SW2
                                                                                                                                     MÁQUINA 3
                                                                                                                                       SW3
                                                                                                                                                                      1k   MÁQUINA 4
                                                                                                                                                                           SW4
                                               E1                                 E2                                     S1                         S2
                                                                       SW-SPST                             SW -SPST                      SW -SPST                          SW-SPST

                                                                          VSS                                                                VSS
                                                                                                               VSS                                                                    VSS
          C1
                                                                                                                                                    VDD

                                U1                                                                       DA
          22p                                                                          RA                                                           RZ
                 X?        16
                                 OSC1/CLKIN          RA0
                                                            17
                                                                        E1                                                                          100
                           15                               18
          C2     CRYSTAL         OSC2/CLKOUT         RA1
                                                            1
                                                                        E2             330R              DB
                                                     RA2                S1             RB                LED-GREEN
                                                                                                                      MÁQUINA 1
                           4                                2                                                                                            RZ1
                                 MCLR                RA3                S2
                                                            3                          330R
                 VDD                           RA4/T0CKI                RA4                                                                RA4
          22p                                                                                            LED-RED
    VSS
                                                            6
                                                                                                         DC                                              100R
                                                 RB0/INT                               RC
                                                            7
                                                    RB1
                                                            8                                                                                                               D2
                                                    RB2
                                                    RB3
                                                            9
                                                                                       330R
                                                                                       RD
                                                                                                         DD
                                                                                                         LED-GREEN
                                                                                                                      MÁQUINA 2                                             LED-RED
                                                            10
                                                    RB4
                                                            11                         330R
                                                    RB5
                                                            12                                           LED-RED
                                                    RB6
                                                            13
                                                                                                         DE
                                                    RB7                                RE
                                PIC16F84A
                                                                                       330R
                                                                                       RF
                                                                                                         DF
                                                                                                         LED-GREEN
                                                                                                                      MÁQUINA 3
                                                                                       330R
                                                                                                         LED-RED
                                                                                                         DG
                                                                                       RG
                                                                                       330R
                                                                                       RV
                                                                                                         DV
                                                                                                         LED-GREEN
                                                                                                                      MÁQUINA 4
                                                                                       330R
                                                                                                         LED-RED


                                                                                                                   VSS




Prof. Luis Zurita                                                                 23                                                             Microcontroladores I
5. Diseñe un circuito de control para un estacionamiento del Centro
       Comercial IUT PLAZA cuya capacidad es de 50 vehículos. Diseño
       libre.
     Consta de dos sensores de entrada (E1 y E2)
     Consta de dos sensores de salida (S1 y S2)
     Consta de un led que indica si hay puesto (HP) y uno que indica si no hay
      puesto (NHP)
     Consta de dos Displays para visualizar el número de vehículos dentro del
      estacionamiento.
El programa debe cumplir con las siguientes condiciones:
     Se realizará un monitoreo constante sobre los sensores de entrada y
      sobre los sensores de salida.
     Si se llega a la cifra de 50 vehículos, se enciende el led de “NO HAY
      PUESTO” y se coloca un cerrojo a la espera de que salga un vehículo.




                         ESTACIONAMIENTO
                             IUT PLAZA
        E2                                                S2


                               CASILLA
                                                         Hay Puesto
                                (μC PIC)
                                                         No Hay Puesto

                    E1                          S1




Prof. Luis Zurita                          24              Microcontroladores I
SOLUCIÓN:

Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del
enunciado, pero debemos asignarle los pines de entrada y salida de control del
microcontrolador.

Una sugerencia es la siguiente:

      ENTRADA       ¿Qué   pin         SALIDA              ¿Qué      pin
                    Asignamos?                             Asignamos?
     Sensor         RB4        Salida     Decodificar      RA0 – RA3
     Entrada 1                 7448
     Sensor         RB5        Salida   Multiplexación     RB0 y RB1
     Entrada 2                 Displays
     Sensor         RB6        Led Hay Cupo                RB2
     Salida 1
     Sensor         RB7           Led No hay Cupo          RB3
     Salida 2




Prof. Luis Zurita                     25                  Microcontroladores I
El hardware quedaría delimitado de la siguiente forma:




                                                                                          RB2




                                                                                                                                            RB3
                                                       HAY CUPO                                                                                     NO HAY CUPO

                              VDD
                                                                                                                                                                                         VDD




                                                                                                     QG
                                                                                                     QC
                                                                                                     QD




                                                                                                                                 DD
                                                                                                                                 DU
                                                                                                     QF
                                                                                                     QA
                                                                                                     QB


                                                                                                     QE
   BARRA DE PASO
                RBARRA
       VBARRA




                                    ENTRADA 2           VDD                                                                                       VDD
                                                                                                                                                                                               SALIDA 2
                                                                                                ESTACIONAMIENTO
                         E2
                                                                                                      IUT PLAZA                                                                  S2


                                                                  R1                                                                                    R5
                                                                  1k                                                                                    1k
                                         VSS                           ENTRADA 1                                                                             SALIDA 1                                      VSS


                                                E1                                                                                     S1


                                               BARRA DE PASO
                                                                       RBARRA
                                                         VBARRA




                                                                                      VSS                                                                              VSS




                                                                                                                                                                       U2
                                                                                                                                                                   7                    13
                                                                                                                                                                        A        QA                QA
                                                                                                                                                                   1                    12
                                                 C1                                                                                                                     B        QB                QB
                                                                                                                                                                   2                    11
                                                                                                                                                                        C        QC                QC
                                                                                                                                                                   6                    10
                                                                                                                                                                        D        QD                QD
                                                                                                                                                                   4                    9
                                                                                                     U1                                                                 BI/RBO   QE                QE
                                                 22p                                                                                                               5                    15
                                                                                                                                                                        RBI      QF                QF
                                                                                X1              16
                                                                                                      OSC1/CLKIN       RA0
                                                                                                                                  17                               3
                                                                                                                                                                        LT       QG
                                                                                                                                                                                        14
                                                                                                                                                                                                   QG
                                                                                CRYSTAL         15                                18
                                                 C2                                                   OSC2/CLKOUT      RA1
                                                                                                                                  1                                    74LS48
                                                                                                                       RA2
                                                                                                4                                 2
                                                                                                      MCLR             RA3
                                                                                                                                  3
                                                                                VDD                               RA4/T0CKI
                                                 22p
                                         VSS
                                                                                                                                  6
                                                                                                                       RB0/INT                    RBO
                                                                                                                                  7
                                                                                                                          RB1                     RB1
                                                                                                                                  8
                                                                                                                          RB2                                RB2
                                                                                                                                  9
                                                                                                                          RB3
                                                                                                                                  10
                                                                                                                                                             RB3                      U3:A
                                                                                                                          RB4                     E1
                                                                                                                                  11
                                                                                                                          RB5                     E2                              1            2
                                                                                                                                  12                                   RB2                              RBARRA
                                                                                                                          RB6                     S1
                                                                                                                                  13
                                                                                                                          RB7                     S2
                                                                                                                                                                                      74LS04
                                                                                                     PIC16F84A                                                                                          VBARRA
                                                                                                                  DD




                                                                                                                                                        DU




                                                                                                                       Q1                                    Q2
                                                                                                RB1                    2N3904    RBO                         2N3904




                                                                                                                       R2                                    R3
                                                                                                                       1k                                    1k




                                                                                                                 VSS                                VSS




Prof. Luis Zurita                                                                                         26                                                                     Microcontroladores I
Paso 2. Diagramas de Flujo:

                             INICIO
                                                                                      Leyenda:
                                                                    Sensor Ent1 y Ent2: Sensores de entradas 1 y 2
                   Declarar registros:                               Sensor Sal1 y Sal2= Sensores de salida 1 y 2
                 UNI, DEC, PDel0, PDel1                                        Led HC= Led Hay Cupo
                                                                             Led NHC= Led No Hay Cupo
                                                                              Lógica de los sensores=
                          Configurar                                               1= Desactivado
                         Puerto A y B                                                0=Activado


                      Inicializar registros:
                            UNI, DEC
                          Puerto A y B


                         Led HC=ON
                        Led NHC=OFF
             1
                                                                                                                               1
                          MOSTRAR
                                                                                                                          NO

                            ¿Sensor            NO     ¿Sensor           NO                   ¿Sensor       NO              ¿Sensor
                            Ent1=0?                   Ent2=0?                                Sal1=0?                       Ent2=0?

                                  SI                           SI          A3                        SI     A4                     SI

                          Delay 5 ms                 Delay 5 ms                             Delay 5 ms                    Delay 5 ms



                 NO         ¿Sensor             NO    ¿Sensor                        NO      ¿Sensor                 NO    ¿Sensor
                            Ent1=1?                   Ent2=1?                                Sal=1?                        Ent2=1?

                                    SI                         SI                                    SI                            SI
                 NO          ¿UNI=                                                   NO       ¿UNI=
 UNI=UNI+1                                                           UNI=UNI-1
                              9?                                                               0?
                                 SI                                                               SI
                                                                    Led HC=OFF
     1                                               1
                             UNI=0                                  Led NHC=ON                UNI=9

                 NO         ¿DEC=                                                    NO       ¿DEC=
  DEC=DEC+1                                                         DEC=DEC-1
                              4?                                                                0?
                                    SI                                                               SI
                                                                    Led HC=OFF
         1                   DEC=5                    1                                       UNI=0
                                                                    Led NHC=ON
                                                                                              DEC=0
                         Led HC=OFF
                         Led NHC=ON                                                              1


                          MOSTRAR
                                                           NO

                            ¿Sensor            NO     ¿Sensor
                            Sal1=0?                   Sal2=0?

                                    SI                         SI

                               A3                         A4




Prof. Luis Zurita                                                       27                                Microcontroladores I
MOSTRAR                 Delay 5 ms



     UNI → PORTA           La sacamos del PDEL


    Display UNI= ON
                                  Return
   Display DEC= OFF


        Delay 5 ms


    DEC → PORTA


    Display UNI= OFF
    Display DEC= ON


        Delay 5 ms


   Display UNI= OFF
   Display DEC= OFF


          Return



Paso 3. Lenguaje Ensamblador:

              List      P=16F84A ;Encabezado del Programa
              include   P16F84A.inc

UNI           equ       20H          ;Zona de declaraciones
DEC           equ       21H          ;UNI y DEC se mostrarán en los Displays
PDel0         equ       22H          ;PDel0 y PDel1 generarán el retardo
PDel1         equ       23H          ;de 5 ms

              org       00H
              goto      INICIO

INICIO        bsf       STATUS,5 ;Banco 1 para configurar Puerto A y B
              CLRF      TRISA

Prof. Luis Zurita                     28                 Microcontroladores I
MOVLW   B'11110000'
              MOVWF   TRISB
              bcf     STATUS,5 ;Banco 0 para trabajar con los puertos

EXP           clrf    UNI        ;Inicializamos los registros
              clrf    DEC        ; y los leds
              bcf     PORTB,3    ;LED NHC=OFF
              bsf     PORTB,2    ;LED HC=ON

ENT1          call    MOSTRAR    ;Mostramos nro de carros en los displays
ENT11         btfsc   PORTB,4    ;ENTRADA 1?
              goto    ENT2       ;No. Vamos a explorar Entrada 2
AQUI1         call    DELAY5ms   ;Si. Colocamos antirrebote
              btfss   PORTB,4    ;PASÓ EL CARRO?
              goto    AQUI1      ;No. Esperamos
SUBE          MOVF    UNI,0      ;Si. Vamos a incrementar nro de carros
              SUBLW   .9
              BTFSS   STATUS,2   ;UNI=9?
              GOTO    SUBEU      ;INCREMENTA UNIDAD
              CLRF    UNI
              MOVF    DEC,0
              SUBLW   .4         ;DEC=5?
              BTFSS   STATUS,2
              GOTO    SUBED      ;INCREMENTA DECENA
              MOVLW   .5         ;Si hemos llegado a 50 vehículos
              MOVWF   DEC        ;Lo meteremos en un cerrojo
              bSf     PORTB,3    ;LED NHC, indicando que no hay cupo
              bCf     PORTB,2    ;LED HC
CERROJO       CALL    MOSTRAR    ;Mostramos nro de carros en los displays
              BTFSC   PORTB,6    ;SALIO UN VEHICULO? En sensor SAL1
              GOTO    CERR2      ;No. Preguntamos por sensor SAL2
              GOTO    AQUI3      ;SI, A DECREMENTAR en SAL1
CERR2         CALL    MOSTRAR    ;Mostramos nro de carros en los displays
              BTFSC   PORTB,7    ;SALIO UN VEHICULO?
              GOTO    CERROJO    ;Vamos a preguntar si salió un carro.
              GOTO    AQUI4      ;SI, A DECREMENTAR en SAL2
SUBEU         INCF    UNI,1      ;Incrementamos UNIDAD
              GOTO    ENT1       ;Vamos a monitorear las entradas


Prof. Luis Zurita                29                    Microcontroladores I
SUBED         INCF    DEC,1      ;Incrementamos la DECENA
              GOTO    ENT1       ;Vamos a monitorear las entradas
ENT2          btfsc   PORTB,5    ;ENTRADA 2?
              goto    SAL1       ;A CHEQUEAR SALIDA 1
AQUI2         call    DELAY5ms   ;Introducimos antirebote
              btfss   PORTB,5    ;Pasó el carro?
              goto    AQUI2      ;Esperamos
              GOTO    SUBE       ;Vamos a incrementar el nro de carros
SAL1          BTFSC   PORTB,6    ;SALIDA 1
              GOTO    SAL2       ;Vamos a chequear salida 2
AQUI3         CALL    DELAY5ms
              BTFSS   PORTB,6    ;Salió el carro?
              GOTO    AQUI3      ;Esperamos
BAJA          MOVF    UNI,0      ;Vamos a decrementar el nro de carros
              SUBLW   00H        ;UNI=0?
              BTFSS   STATUS,2
              GOTO    BAJAU      ;A DECREMENTAR UNIDAD
              MOVLW   .9
              MOVWF   UNI
              MOVF    DEC,0
              SUBLW   00H
              BTFSS   STATUS,2
              GOTO    BAJAD      ;A DECREMENTAR DECENA
              CLRF    UNI        ;Si el nro de carros es cero
              CLRF    DEC        ;Mantendremos ese valor.
              GOTO    ENT1
BAJAU         DECF    UNI,1
              bcf     PORTB,3    ;LED NHC=OFF
              bsf     PORTB,2    ;LED HC=ON
              GOTO    ENT1
BAJAD         DECF    DEC,1
              bcf     PORTB,3    ;LED NHC=OFF
              bsf     PORTB,2    ;LED HC=ON
              GOTO    ENT1
SAL2          BTFSC   PORTB,7    ;SALIDA 2
              GOTO    ENT1       ;A chequear entrada 1 nuevamente
AQUI4         CALL    DELAY5ms
              BTFSS   PORTB,7    ;Salió el carro?


Prof. Luis Zurita                30                   Microcontroladores I
GOTO      AQUI4        ;Esperamos
              GOTO      BAJA         ;Vamos a decrementar el nro de carros

;***********************************************************
;***Subrutina para Mostrar UNIDAD y DECENA en los Displays***
;***********************************************************
MOSTRAR MOVF            UNI,0
            MOVWF       PORTA
            BCF         PORTB,0
            CALL        DELAY5ms
            BSF         PORTB,0
            BSF         PORTB,1
            MOVF        DEC,0
            MOVWF       PORTA
            BCF         PORTB,1
            CALL        DELAY5ms
            BSF         PORTB,0
            BSF         PORTB,1
            CALL        DELAY5ms
            return
;******************************************************
;***Subrutina de retardo de 5 mseg, generada por el PDEL***
;******************************************************
DELAY5ms movlw          .6           ; 1 set numero de repeticion (B)
             movwf      PDel0        ;1|
PLoop1      movlw       .207         ; 1 set numero de repeticion (A)
            movwf       PDel1        ;1|
PLoop2      clrwdt                   ; 1 clear watchdog
            decfsz      PDel1, 1     ; 1 + (1) es el tiempo 0 ? (A)
            goto        PLoop2       ; 2 no, loop
            decfsz      PDel0, 1     ; 1 + (1) es el tiempo 0 ? (B)
            goto        PLoop1       ; 2 no, loop
PDelL1      goto        PDelL2       ; 2 ciclos delay
PDelL2      clrwdt                   ; 1 ciclo delay
            return                   ; 2+2 Fin.

              end                    ;Fin del programa



Prof. Luis Zurita                    31                   Microcontroladores I

Más contenido relacionado

Destacado

Asignación nro 4 2011
Asignación nro 4 2011Asignación nro 4 2011
Asignación nro 4 2011Luis Zurita
 
Admision y matriculación ciclos formativos 2016/2017 Extremadura
Admision y matriculación ciclos formativos 2016/2017 ExtremaduraAdmision y matriculación ciclos formativos 2016/2017 Extremadura
Admision y matriculación ciclos formativos 2016/2017 ExtremaduraJosé María Delgado Casado
 
Presentación Erasmus Curso 2012/2013 IES Javier García Téllez
Presentación Erasmus Curso 2012/2013 IES Javier García TéllezPresentación Erasmus Curso 2012/2013 IES Javier García Téllez
Presentación Erasmus Curso 2012/2013 IES Javier García TéllezJosé María Delgado Casado
 
Comparar registros de 16 bits
Comparar registros de 16 bitsComparar registros de 16 bits
Comparar registros de 16 bitsLuis Zurita
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupcionesLuis Zurita
 
Presentación Erasmus IES Javier García Téllez - Curso 2013 2014
Presentación Erasmus IES Javier García Téllez - Curso 2013 2014Presentación Erasmus IES Javier García Téllez - Curso 2013 2014
Presentación Erasmus IES Javier García Téllez - Curso 2013 2014José María Delgado Casado
 
Diagramas de flujo del examen del marcador
Diagramas de flujo del examen del marcadorDiagramas de flujo del examen del marcador
Diagramas de flujo del examen del marcadorLuis Zurita
 
Unidad 0 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos
Unidad 0 - Autómatas Programables en las Instalaciones Térmicas y de FluidosUnidad 0 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos
Unidad 0 - Autómatas Programables en las Instalaciones Térmicas y de FluidosJosé María Delgado Casado
 
Asignación nro 4
Asignación nro 4Asignación nro 4
Asignación nro 4Luis Zurita
 
Manual Pic16 F87 X
Manual Pic16 F87 XManual Pic16 F87 X
Manual Pic16 F87 XLuis Zurita
 

Destacado (16)

Asignación nro 4 2011
Asignación nro 4 2011Asignación nro 4 2011
Asignación nro 4 2011
 
Admision y matriculación ciclos formativos 2016/2017 Extremadura
Admision y matriculación ciclos formativos 2016/2017 ExtremaduraAdmision y matriculación ciclos formativos 2016/2017 Extremadura
Admision y matriculación ciclos formativos 2016/2017 Extremadura
 
Bolascriollas
BolascriollasBolascriollas
Bolascriollas
 
Herramientas colaborativas
Herramientas colaborativasHerramientas colaborativas
Herramientas colaborativas
 
Presentación Erasmus Curso 2012/2013 IES Javier García Téllez
Presentación Erasmus Curso 2012/2013 IES Javier García TéllezPresentación Erasmus Curso 2012/2013 IES Javier García Téllez
Presentación Erasmus Curso 2012/2013 IES Javier García Téllez
 
Comparar registros de 16 bits
Comparar registros de 16 bitsComparar registros de 16 bits
Comparar registros de 16 bits
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupciones
 
Presentación Erasmus IES Javier García Téllez - Curso 2013 2014
Presentación Erasmus IES Javier García Téllez - Curso 2013 2014Presentación Erasmus IES Javier García Téllez - Curso 2013 2014
Presentación Erasmus IES Javier García Téllez - Curso 2013 2014
 
Insercion laboral alumnos IES San Roque
Insercion laboral alumnos IES San RoqueInsercion laboral alumnos IES San Roque
Insercion laboral alumnos IES San Roque
 
Diagramas de flujo del examen del marcador
Diagramas de flujo del examen del marcadorDiagramas de flujo del examen del marcador
Diagramas de flujo del examen del marcador
 
UNIDAD IV
UNIDAD IVUNIDAD IV
UNIDAD IV
 
Unidad 0 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos
Unidad 0 - Autómatas Programables en las Instalaciones Térmicas y de FluidosUnidad 0 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos
Unidad 0 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos
 
R2 R
R2 RR2 R
R2 R
 
Practica 1 2012
Practica 1 2012Practica 1 2012
Practica 1 2012
 
Asignación nro 4
Asignación nro 4Asignación nro 4
Asignación nro 4
 
Manual Pic16 F87 X
Manual Pic16 F87 XManual Pic16 F87 X
Manual Pic16 F87 X
 

Similar a GUÍA DE EJERCICIOS RESUELTOS TEMA 3

Similar a GUÍA DE EJERCICIOS RESUELTOS TEMA 3 (20)

PPT Seguimiento Maxima Potencia
PPT Seguimiento Maxima PotenciaPPT Seguimiento Maxima Potencia
PPT Seguimiento Maxima Potencia
 
Ciclo w r 24 lc16b
Ciclo w r 24 lc16bCiclo w r 24 lc16b
Ciclo w r 24 lc16b
 
Convertidor AD DA
Convertidor AD DA Convertidor AD DA
Convertidor AD DA
 
28931236 Practica2
28931236 Practica228931236 Practica2
28931236 Practica2
 
28931236 Practica2
28931236 Practica228931236 Practica2
28931236 Practica2
 
28931236 Practica2
28931236 Practica228931236 Practica2
28931236 Practica2
 
Amplificador monofónico de 400 watts
Amplificador monofónico de 400 wattsAmplificador monofónico de 400 watts
Amplificador monofónico de 400 watts
 
Amplificador estereo 250 watts
Amplificador estereo 250 wattsAmplificador estereo 250 watts
Amplificador estereo 250 watts
 
Strober
StroberStrober
Strober
 
Tda 90w mono
Tda 90w monoTda 90w mono
Tda 90w mono
 
amplificador estéreo con tda7294
amplificador estéreo con tda7294amplificador estéreo con tda7294
amplificador estéreo con tda7294
 
Page0154
Page0154Page0154
Page0154
 
Tda7294 amplificador 180 w
Tda7294 amplificador 180 wTda7294 amplificador 180 w
Tda7294 amplificador 180 w
 
Tda7294 flat
Tda7294 flatTda7294 flat
Tda7294 flat
 
Proyecto institucional 3 er parcial caelo (1)
Proyecto institucional 3 er parcial caelo (1)Proyecto institucional 3 er parcial caelo (1)
Proyecto institucional 3 er parcial caelo (1)
 
Sumadores
SumadoresSumadores
Sumadores
 
Circuitoselectrónicos
 Circuitoselectrónicos Circuitoselectrónicos
Circuitoselectrónicos
 
Contactores
ContactoresContactores
Contactores
 
Page0164
Page0164Page0164
Page0164
 
Amplificadores rms by #sic.248!
Amplificadores rms     by  #sic.248!Amplificadores rms     by  #sic.248!
Amplificadores rms by #sic.248!
 

Más de Luis Zurita

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APALuis Zurita
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUSLuis Zurita
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y tecladoLuis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13Luis Zurita
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronicaLuis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iycLuis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronicaLuis Zurita
 

Más de Luis Zurita (20)

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 

Último

Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 

GUÍA DE EJERCICIOS RESUELTOS TEMA 3

  • 1. GUÍA DE EJERCICIOS RESUELTOS TEMA 4: RUTINAS INTERMEDIAS, TABLAS Y ESTRUCTURA DE CONTADORES Prof. Luis Zurita 1 Microcontroladores I
  • 2. 1. Diseñe un contador de 4 cifras para una empresa enlatadora de pescado. Diseño Libre. SOLUCIÓN: Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del enunciado, pero al ser diseño libre, como la mayoría de los problemas que nos tocarán realizar, debemos asignarle los pines de entrada y salida de control del microcontrolador. Una sugerencia es la siguiente: ENTRADA ¿Qué pin SALIDA ¿Qué pin Asignamos? Asignamos? Sensor Latas RA4 Salida Decodificar RB0 – RB3 7448 Salida Multiplexación RA0-RA3 Displays ¿Por qué un 7448 y no un 7447? ¿Por qué un cátodo común y no un ánodo común? Como es diseño libre, la elección depende del diseñador, en otros diseños elegiremos el ánodo común, generalmente el consumo de corriente utilizando un decodificador es casi el mismo para cualquiera de los dos modelos disponibles de displays, más no así cuando no se utiliza un decodificador, y se controla directamente con un puerto de un microcontrolador. Generalmente en los sistemas digitales se prefiere trabajar como sumidero o vertidero y no como fuente de corriente. Prof. Luis Zurita 2 Microcontroladores I
  • 3. El hardware quedaría delimitado de la siguiente manera: VDD RA4 SW1 RZ1 SW -SPDT 1k SW 1(NC) C1 VSS 22p U1 X1 16 OSC1/CLKIN RA0 17 RA0 CRYSTAL 15 18 OSC2/CLKOUT RA1 RA1 1 C2 RA2 RA2 4 2 MCLR RA3 RA3 3 VSS RA4/T0CKI RA4U2 VDD R55 22p 6 7 13 R66 RB0/INT A QA 7 1 12 R14 330R RB1 B QB 8 2 11 R13 330R RB2 C QC 9 6 10 R15 330R RB3 D QD 10 4 9 R12 330R RB4 BI/RBO QE 11 5 15 R33 330R RB5 RBI QF 12 3 14 330R RB6 LT QG 13 330R RB7 74LS48 PIC16F84A Q11 2N3904 Q1 2N3904 2N3904 2N3904 RA0 RA2 RA1 Q22 RA3 Q2 R31 R3 R25 1k R4 1k 1k 1k VSS VSS VSS VSS Prof. Luis Zurita 3 Microcontroladores I
  • 4. Paso 2. Diagramas de Flujo: INICIO MOSTRAR Declarar registros: UNI → PORTB UNI, DEC, CEN, UMIL Display UNI=ON Configurar Resto Displays= OFF Puerto A y B Delay 5 ms Inicializar registros: UNI, DEC, CEN, UMIL Puerto A y B DEC → PORTB 1 MOSTRAR Display DEC=ON Resto Displays= OFF NO ¿Se activó Sensor? Delay 5 ms SI CEN → PORTB Delay 5 ms Display CEN=ON Resto Displays= OFF NO ¿Se desactivó Sensor? Delay 5 ms SI UNI=UNI+1 NO ¿UNI= UMIL → PORTB 9? SI Display UMIL=ON 1 UNI=0 Resto Displays= OFF NO ¿DEC= Delay 5 ms DEC=DEC+1 9? SI Todos los Displays= OFF 1 DEC=0 Return NO ¿CEN= CEN=CEN+1 9? SI 1 Delay 5 ms CEN=0 NO ¿UMIL= La sacamos del PDEL UMIL=UMIL+1 9? SI Return 1 UMIL=0 1 Prof. Luis Zurita 4 Microcontroladores I
  • 5. Nota: observe en el diagrama de flujo anterior, que las subrutinas que son llamadas dentro del programa principal, deben ser expresadas como diagramas de flujo adicionales para su entendimiento y posterior conversión al lenguaje ensamblador. Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador: LIST P=16F84A ;Encabezado del Programa INCLUDE P16F84A.INC UNI EQU 21H ;Zona de declaraciones DEC EQU 22H CEN EQU 23H UMIL EQU 24H PDel0 EQU 25H PDel1 EQU 26H ORG 00H GOTO INICIO INICIO BSF STATUS,5 ;Banco 1 movlw B'00010000' ;Configuramos Puerto A y B movwf TRISA CLRF TRISB BCF STATUS,5 ;Regresamos al Banco 0 a trabajar INICIAR CLRF UNI ;Inicializamos los registros CLRF DEC CLRF CEN CLRF UMIL EXPLORA CALL DISPLAYS ;Llamamos Subrutina de Displays BTFSC PORTA,4 ;Preguntamos si Sensor se activó GOTO EXPLORA ;No, Seguimos esperando AQUI CALL DEMORA ;Si, Introducimos Antirrebote BTFSS PORTA,4 GOTO AQUI MOVF UNI,0 ;Preguntamos si UNI=9? Prof. Luis Zurita 5 Microcontroladores I
  • 6. SUBLW .9 BTFSS STATUS,2 GOTO SUBEUNI ;No, vamos a incrementar UNI CLRF UNI ;Si, UNI=0 MOVF DEC,0 ;Preguntamos si DEC=9 SUBLW .9 BTFSS STATUS,2 GOTO SUBEDEC ;No, vamos a incrementar DEC CLRF DEC ;Si, DEC=0 MOVF CEN,0 ; Y hacemos lo mismo con CEN SUBLW .9 ;y Unidad de mil (UMIL) BTFSS STATUS,2 GOTO SUBECEN CLRF CEN MOVF UMIL,0 SUBLW .9 BTFSS STATUS,2 GOTO SUBEUMIL CLRF UMIL GOTO EXPLORA SUBEUNI INCF UNI,1 ;UNI= UNI+1 GOTO EXPLORA ;Vamos a ver si ha pasado otra lata SUBEDEC INCF DEC,1 ;DEC= DEC+1 GOTO EXPLORA ;Vamos a ver si ha pasado otra lata SUBECEN INCF CEN,1 ;CEN= CEN+1 GOTO EXPLORA ;Vamos a ver si ha pasado otra lata SUBEUMIL INCF UMIL,1 ;UMIL= UMIL+1 GOTO EXPLORA ;Vamos a ver si ha pasado otra lata DISPLAYS MOVF UNI,0 ;Subrutina para mostrar datos en MOVWF PORTB ;Displays bajo la técnica de la MOVLW B'11111110' ;Multiplexación MOVWF PORTA CALL DEMORA movlw 0ffh movwf PORTA MOVF DEC,0 MOVWF PORTB Prof. Luis Zurita 6 Microcontroladores I
  • 7. MOVLW B'11111101' MOVWF PORTA CALL DEMORA movlw 0FFH movwf PORTA MOVF CEN,0 MOVWF PORTB MOVLW B'11111011' MOVWF PORTA CALL DEMORA movlw 0ffh movwf PORTA MOVF UMIL,0 MOVWF PORTB MOVLW B'11110111' MOVWF PORTA CALL DEMORA movlw 0ffh movwf PORTA CALL DEMORA RETURN ;**************************************************** ;*** Rutina de retardo de 5 ms, generada por el PICDEL*** ;**************************************************** DEMORA movlw .248 ; 1 set numero de repeticion movwf PDel0 ;1| PLoop0 clrwdt ; 1 clear watchdog decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? goto PLoop0 ; 2 no, loop PDelL1 goto PDelL2 ; 2 ciclos delay PDelL2 clrwdt ; 1 ciclo delay return ; 2+2 Fin. END ;Fin del programa. Prof. Luis Zurita 7 Microcontroladores I
  • 8. 2. Diseñe un contador de dos cifras ascendente, sin utilizar un decodificador. Diseño libre. SOLUCIÓN: Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del enunciado, pero al ser diseño libre, debemos asignarle los pines de entrada y salida de control del microcontrolador. Una sugerencia es la siguiente: ENTRADA ¿Qué pin SALIDA ¿Qué pin Asignamos? Asignamos? Pulsador RA4 Salidas a los segmentos RB0 – RB7 del display Salida Multiplexación RA0 (Unidad) Displays RA1 (Decena) El hardware quedaría delimitado de la siguiente manera: R1 1k C1 22p U? X? 16 OSC1/CLKIN RA0 17 CRYSTAL 15 18 C? OSC2/CLKOUT RA1 1 RA2 4 2 MCLR RA3 3 VSS RA4/T0CKI 22p 6 RB0/INT 7 RB1 8 RB2 9 RB3 10 RB4 11 RB5 12 RB6 13 RB7 PIC16F84A R2 Q1 2N3904 1k R3 Q? 2N3904 1k Prof. Luis Zurita 8 Microcontroladores I
  • 9. Paso 2. Diagramas de Flujo: INICIO MOSTRAR Declarar registros: UNI → W UNI, DEC Configurar TABLA Puerto A y B W → PORTB Inicializar registros: UNI, DEC Display UNI= ON Puerto A y B Display DEC= OFF 1 MOSTRAR Delay 5 ms DEC → W NO ¿Se activó Pulsador? SI TABLA Delay 5 ms W → PORTB Display UNI= OFF NO ¿Se desactivó Display DEC= ON Pulsador? SI Delay 5 ms NO ¿UNI= UNI=UNI+1 Todos los Displays= OFF 9? SI 1 UNI=0 Return NO ¿DEC= DEC=DEC+1 9? TABLA Delay 5 ms SI 1 DEC=0 W + PCL → PCL La sacamos del PDEL 1 Retornamos con el valor Return en W extraido de la tabla Return Prof. Luis Zurita 9 Microcontroladores I
  • 10. Paso 3. Lenguaje ensamblador: LIST P=16F84A INCLUDE P16F84A.INC ORG 00H GOTO INICIO UNI EQU 20H ;Registro con el valor de la UNIDAD DEC EQU 21H ;Registro con el valor de la DECENA PDel0 EQU 24H ;Registro para retardo PDel1 EQU 25H ;Registro para retardo PDel2 EQU 26H ;Registro para retardo PDel3 EQU 27H ;Registro para retardo PDelX5 EQU 2AH ;Registro para retardo CONTA equ 2bh ;Contador para decodificación con tabla INICIO BSF STATUS,5 CLRF TRISB ; Se configura al Puerto B como salida ; para manejar los displays BCF TRISA,0 ; Selector de display de UNIDAD BCF TRISA,1 ; Selector de display de DECENA BSF TRISA,4 ; Pulsador de incremento de cuenta BCF STATUS,5 ;Banco 0. CLRF UNI ;Inicializamos registros y puerto B CLRF DEC clrf PORTB SUBE CALL MOSTRAR BTFSC PORTA,4 ; Se ha pulsado INCREMENTO? GOTO SUBE ;No. Seguimos explorando AUMENTA CALL RET5mS ; Retardo de 5 ms, elimina rebotes. BTFSS PORTA,4 ;Esperamos a que se suelte Pulsador GOTO AUMENTA MOVLW 09H ;Preguntamos si UNI=9 SUBWF UNI,0 BTFSC STATUS,0 GOTO SUBEDEC ;Si. Vamos a preguntar por la Decena INCF UNI,1 CALL MOSTRAR ;Muestra datos en Displays GOTO SUBE Prof. Luis Zurita 10 Microcontroladores I
  • 11. SUBEDEC CLRF UNI MOVLW 09H ;Preguntamos si Decena=9 SUBWF DEC,0 BTFSC STATUS,0 GOTO RONDA ;Si, vamos a RONDA INCF DEC,1 ;No. Incrementamos Decena CALL MOSTRAR ;Muestra datos en Displays GOTO SUBE ;Vamos a preguntar por Pulsador RONDA CLRF DEC CALL MOSTRAR GOTO SUBE ;************************ ;***RUTINA MOSTRAR*** ;************************ MOSTRAR BCF PORTA,1 BSF PORTA,0 ; Se selecciona el display de UNIDAD MOVF UNI,0 ; Y se muestra el dato CALL TABLA ;Vamos a Tabla para extraer dato ;Equivalente al registro UNIDAD MOVWF PORTB CALL RET1mS ;Se espera 1 ms para la ;multiplexación de display BCF PORTA,0 MOVLW b'11111111' MOVWF PORTB ;Limpiamos Puerto B BSF PORTA,1 ; Se selecciona el display de DECENA MOVF DEC,0 ; Y se muestra el dato CALL TABLA MOVWF PORTB CALL RET1mS ; se espera 1 ms para la multiplexación BCF PORTA,1 MOVLW B'11111111' MOVWF PORTB return Prof. Luis Zurita 11 Microcontroladores I
  • 12. ;**************************************************** ;****TABLA DE CONVERSIÓN BCD A 7 SEGMENTOS**** ;**************************************************** ; Esta tabla se encarga de convertir los datos en BCD en formato de 7 ;segmentos para visualizarce en los displays. Compare con el ejercicio 2 de la ;guía de ejercicios resueltos del tema 3. TABLA addwf PCL,F retlw b'11000000' ;0 retlw b'11111001' ;1 retlw b'10100100' ;2 retlw b'10110000' ;3 retlw b'10011001' ;4 retlw b'10010010' ;5 retlw b'10000010' ;6 retlw b'11111000' ;7 retlw b'10000000' ;8 retlw b'10011000' ;9 ;*********************** ;***RUTINA 0,5 SEG**** ;*********************** ; Esta rutina permite que entre la activacion de la señal sonora y su ; desactivacion exista 0,5 segundos de intervalo. Está generada por el ; PDEL ;*********************** RET05S clrf conta ret5 movlw .4 ; 1 set numero de repeticion (B) movwf PDel0 ;1| PLoop1 movlw .186 ; 1 set numero de repeticion (A) movwf PDel1 ;1| PLoop2 clrwdt ; 1 clear watchdog decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop2 ; 2 no, loop decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop1 ; 2 no, loop PDelL1 goto PDelL2 ; 2 ciclos delay PDelL2 clrwdt ; 1 ciclo delay Prof. Luis Zurita 12 Microcontroladores I
  • 13. ;******************************************* ;***Rutina para eliminar rebotes por software*** ;***RETARDO 5 mS************************** ;***Extraida del PDEL************************ RET5mS movlw .6 ; 1 set numero de repeticion (B) movwf PDel2 ;1| PLoop3 movlw .207 ; 1 set numero de repeticion (A) movwf PDel3 ;1| PLoop4 clrwdt ; 1 clear watchdog decfsz PDel3, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop4 ; 2 no, loop decfsz PDel2, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop3 ; 2 no, loop PDelL8 goto PDelL9 ; 2 ciclos delay PDelL9 clrwdt ; 1 ciclo delay return ; 2+2 Fin. ;********************************************************* ;***Rutina de 1 ms utilizado en la multiplexacion de los displays*** ;********************************************************* ;Nota: Esta rutina es opcional, se puede utilizar perfectamente la misma de ;los 5 ms para la multiplexación de los displays. RET1mS MOVLW D'248' ; 1 set numero de repeticion MOVWF PDelX5 ; 1| PLoopX CLRWDT ; 1 clear watchdog DECFSZ PDelX5,1 ; 1 + (1) es el tiempo 0 ? GOTO PLoopX ; 2 no, loop PDelLX1 GOTO PDelLX2 ; 2 ciclos delay PDelLX2 CLRWDT ; 1 ciclo delay RETURN ; 2+2 Fin. end Prof. Luis Zurita 13 Microcontroladores I
  • 14. 3. Diseñe un semáforo de 4 esquinas. Utilice tabla. Diseño libre. SOLUCIÓN: Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del enunciado, pero al ser diseño libre, debemos asignarle los pines de entrada y salida de control del microcontrolador. Una sugerencia es la siguiente: ENTRADA ¿Qué pin SALIDA ¿Qué pin Asignamos? Asignamos? Pulsador RA4 Salidas a los semáforos RB0 – RB7 INICIO 12y3 Salida a los semáforos RA0 –RA3 3y4 El hardware quedaría delimitado de la siguiente forma: VDD S1 R? RB0 1k RB1 INICIO RB2 C1 22p U? X? 16 OSC1/CLKIN RA0 17 RA0 CRYSTAL 15 18 C2 OSC2/CLKOUT RA1 RA1 RB6 RA1 1 RA2 RA2 S3 S4 4 2 MCLR RA3 RA4/T0CKI 3 RA3 INICIO RB7 SEMÁFORO RA2 22p 6 VSS RB0/INT RB1 7 RB0 RB1 RA0 CASCAJAL RA3 8 RB2 RB2 9 RB3 RB3 10 RB4 RB4 11 RB5 RB5 12 RB6 RB6 13 RB7 RB7 PIC16F84A RB3 RB4 RB5 S2 Prof. Luis Zurita 14 Microcontroladores I
  • 15. Paso 2. Diagramas de Flujo: Prof. Luis Zurita 15 Microcontroladores I
  • 16. Nota: El PDEL permite generar rutinas de tiempo muy grandes, sin embargo, como buena práctica podemos tener rutinas de tiempo variables en base a un registro, como lo observamos en las subrutinas Delay 30 seg y Delay5 seg Prof. Luis Zurita 16 Microcontroladores I
  • 17. Paso 3. Lenguaje ensamblador: LIST P=16F84A ;Encabezado del programa INCLUDE P16F84A.INC CONTA EQU 20H ;Zona de declaraciones CONTA2 EQU 21H PDel0 EQU 22H PDel1 EQU 23H PDel2 EQU 24H ORG 00H GOTO INICIO INICIO BSF STATUS,5 ;Banco 1 para configurar puertos CLRF TRISB ;Se configura puerto A y B MOVLW B'10000' MOVWF TRISA BCF STATUS,5 ;Banco 0 para trabajar con los puertos CLRF CONTA ;Inicializamos los registros y puertos CLRF CONTA2 CLRF PORTA CLRF PORTB EMPIEZA BTFSC PORTA,4 ;Preguntamos si se presionó “INICIO” GOTO EMPIEZA ;No. Esperamos NCICLO CALL MOSTRAR ;Llamamos rutina “MOSTRAR” CALL DELAY30S ;Esperamos 30 segundos INCF CONTA,1 ;Incrementamos contador de estados CALL MOSTRAR CALL DELAY5S ;Esperamos 5 segundos MOVLW 07H SUBWF CONTA,0 ;Si contador=7 reinicia ciclo BTFSS STATUS,2 GOTO SUBE CLRF CONTA GOTO NCICLO SUBE INCF CONTA,1 GOTO NCICLO Prof. Luis Zurita 17 Microcontroladores I
  • 18. MOSTRAR MOVF CONTA,0 ;Se mueve Contador a W CALL TABLA1 ;Se extrae de la TABLA 1 el valor MOVWF PORTB ;a mostrar por el Puerto B MOVF CONTA,0 ;Luego se extraerá de la TABLA2 CALL TABLA2 ;El valor a mostrar por el Puerto A MOVWF PORTA RETURN ;*********************************** ;***Rutina de retardo de 30 segundos*** ;*********************************** DELAY30S CLRF CONTA2 ;CONTA2, va a contar hasta 30, que OTROCALL RET1S ; y en cada cuenta se espera 1 segundo MOVLW D'29' ;Lo que nos dará la rutina de 30 segundos SUBWF CONTA2,0 BTFSS STATUS,2 GOTO PREVIO RETURN PREVIO INCF CONTA2,1 GOTO OTRO ;*********************************** ;***Rutina de retardo de 5 segundos*** ;*********************************** DELAY5S CLRF CONTA2 ;CONTA2, va a contar hasta 5, que OTRO2 CALL RET1S ; y en cada cuenta se espera 1 segundo MOVLW D'4' ;Lo que nos dará la rutina de 5 segundos SUBWF CONTA2,0 BTFSS STATUS,2 GOTO PREVIO2 RETURN PREVIO2 INCF CONTA2,1 GOTO OTRO2 Prof. Luis Zurita 18 Microcontroladores I
  • 19. ;***Rutina de retardo de 1 segundos extraida del PDEL *** RET1S movlw .14 ; 1 set numero de repeticion (C) movwf PDel0 ;1| PLoop0 movlw .72 ; 1 set numero de repeticion (B) movwf PDel1 ;1| PLoop1 movlw .247 ; 1 set numero de repeticion (A) movwf PDel2 ;1| PLoop2 clrwdt ; 1 clear watchdog decfsz PDel2, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop2 ; 2 no, loop decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop1 ; 2 no, loop decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (C) goto PLoop0 ; 2 no, loop PDelL1 goto PDelL2 ; 2 ciclos delay PDelL2 clrwdt ; 1 ciclo delay return ; 2+2 Fin. ;***La tabla 1 contiene el valor que se va a mostrar por el Puerto B*** TABLA1 ADDWF PCL,1 RETLW 4CH RETLW 4AH RETLW 61H RETLW 51H RETLW 09H RETLW 89H RETLW 49H RETLW 49H ;***La tabla 2 contiene el valor que se va a mostrar por el Puerto A*** TABLA2 ADDWF PCL,1 RETLW 02H RETLW 02H RETLW 02H RETLW 02H RETLW 03H RETLW 02H RETLW 08H RETLW 04H END Prof. Luis Zurita 19 Microcontroladores I
  • 20. 4. Se desea diseñar un sistema de protección para una línea de ensamblaje que contiene 4 máquinas soldadoras.  M1 (RA0) M2 (RA1) M3 (RA2) M4 (RA3)  Máquina activa= 1 Máquina inactiva= 0 * Cada máquina tiene dos leds que indican si están funcionando:  (Led Verde=ON) o si están apagadas (Led Rojo=ON). * Si ninguna máquina está activa, debe activarse adicionalmente una señal sonora (RA4). Nota: Vamos a realizar el mismo problema que hicimos en la guía de ejercicio anterior, pero ahora con el uso de una tabla, veamos si el problema se simplifica o no. Prof. Luis Zurita 20 Microcontroladores I
  • 21. SOLUCIÓN: Paso 1. Enunciado y delimitación del Hardware: si el enunciado y el hardware ya se nos ha proporcionado, saltaremos este paso. Paso 2. Diagramas de Flujo: INICIO TABLA Configurar Puerto A y B W + PCL → PCL 1 Retornamos con el valor PuertoA → W en W extraido de la tabla correspondiente a los sensores de Puerto A TABLA Return W → PuertoB ¿Todas las máquinas están NO ¿W= apagadas? ALARMA= OFF B'01011010'? 1 SI ALARMA= ON 1 Prof. Luis Zurita 21 Microcontroladores I
  • 22. Paso 3. Lenguaje Ensamblador: list P=16F84A ;Encabezado del programa include P16F84A.inc org 00H goto INICIO INICIO bsf STATUS,5 ;Configuramos Puerto A y B movlw 0FH movwf TRISA clrf TRISB bcf STATUS,5 clrf PORTB bcf PORTA,4 CICLO movf PORTA,0 ;Leemos los sensores andlw 0FH ;Aplicamos enmascaramiento call TABLA ;Llamamos la tabla movw PORTB ;Sacamos el dato hacia los indicadores sublw 5AH ;Preguntamos si todas las máquinas=OFF btfss STATUS,2 goto NOALARMA ;No. Mantenemos Alarma=OFF ALARMA bsf PORTA,4 ;Si. Alarma=ON goto CICLO ;Vamos a explorar los sensores de nuevo NOALARMA bcf PORTA,4 goto CICLO TABLA addwf PCL,1 DT 5AH, 59H, 56H, 55H, 6AH, 69H, 66H, 65H, 9AH, 99H, 96H, 95H, 0AAH, 0A9H, 0A6H, 0A5H ;DT es una directiva para declarar tablas y tiene el mismo efecto que usar el retlw K: ; retlw 5AH ;Nota: estos son los valores que corresponden ; retlw 59H ;a la combinación de sensores y leds de salida ; retlw 56H ; retlw 55H ; retlw 6AH ; retlw 69H ; retlw 66H Prof. Luis Zurita 22 Microcontroladores I
  • 23. ; retlw 65H ; retlw 9AH ; retlw 99H ; retlw 96H ; retlw 95H ; retlw 0AAH ; retlw 0A9H ; retlw 0A6H ; retlw 0A5H END Nota: Este programa posee 24 líneas si utilizamos la directiva DT y 40 si utilizamos las instrucciones retlw k, mientras que el realizado en la guía de ejercicios anterior posee 67 líneas, lo que demuestra que se simplifica en código y lógica de trabajo. El uso de las tablas tiene aplicaciones muy importantes en los microcontroladores. El circuito de las máquinas en el Proteus quedaría así: VDD VDD VDD VDD R1 R5 1k R4 1k R6 MÁQUINA 1 SW1 1k MÁQUINA 2 SW2 MÁQUINA 3 SW3 1k MÁQUINA 4 SW4 E1 E2 S1 S2 SW-SPST SW -SPST SW -SPST SW-SPST VSS VSS VSS VSS C1 VDD U1 DA 22p RA RZ X? 16 OSC1/CLKIN RA0 17 E1 100 15 18 C2 CRYSTAL OSC2/CLKOUT RA1 1 E2 330R DB RA2 S1 RB LED-GREEN MÁQUINA 1 4 2 RZ1 MCLR RA3 S2 3 330R VDD RA4/T0CKI RA4 RA4 22p LED-RED VSS 6 DC 100R RB0/INT RC 7 RB1 8 D2 RB2 RB3 9 330R RD DD LED-GREEN MÁQUINA 2 LED-RED 10 RB4 11 330R RB5 12 LED-RED RB6 13 DE RB7 RE PIC16F84A 330R RF DF LED-GREEN MÁQUINA 3 330R LED-RED DG RG 330R RV DV LED-GREEN MÁQUINA 4 330R LED-RED VSS Prof. Luis Zurita 23 Microcontroladores I
  • 24. 5. Diseñe un circuito de control para un estacionamiento del Centro Comercial IUT PLAZA cuya capacidad es de 50 vehículos. Diseño libre.  Consta de dos sensores de entrada (E1 y E2)  Consta de dos sensores de salida (S1 y S2)  Consta de un led que indica si hay puesto (HP) y uno que indica si no hay puesto (NHP)  Consta de dos Displays para visualizar el número de vehículos dentro del estacionamiento. El programa debe cumplir con las siguientes condiciones:  Se realizará un monitoreo constante sobre los sensores de entrada y sobre los sensores de salida.  Si se llega a la cifra de 50 vehículos, se enciende el led de “NO HAY PUESTO” y se coloca un cerrojo a la espera de que salga un vehículo. ESTACIONAMIENTO IUT PLAZA E2 S2 CASILLA Hay Puesto (μC PIC) No Hay Puesto E1 S1 Prof. Luis Zurita 24 Microcontroladores I
  • 25. SOLUCIÓN: Paso 1. Enunciado y delimitación del Hardware: Ya disponemos del enunciado, pero debemos asignarle los pines de entrada y salida de control del microcontrolador. Una sugerencia es la siguiente: ENTRADA ¿Qué pin SALIDA ¿Qué pin Asignamos? Asignamos? Sensor RB4 Salida Decodificar RA0 – RA3 Entrada 1 7448 Sensor RB5 Salida Multiplexación RB0 y RB1 Entrada 2 Displays Sensor RB6 Led Hay Cupo RB2 Salida 1 Sensor RB7 Led No hay Cupo RB3 Salida 2 Prof. Luis Zurita 25 Microcontroladores I
  • 26. El hardware quedaría delimitado de la siguiente forma: RB2 RB3 HAY CUPO NO HAY CUPO VDD VDD QG QC QD DD DU QF QA QB QE BARRA DE PASO RBARRA VBARRA ENTRADA 2 VDD VDD SALIDA 2 ESTACIONAMIENTO E2 IUT PLAZA S2 R1 R5 1k 1k VSS ENTRADA 1 SALIDA 1 VSS E1 S1 BARRA DE PASO RBARRA VBARRA VSS VSS U2 7 13 A QA QA 1 12 C1 B QB QB 2 11 C QC QC 6 10 D QD QD 4 9 U1 BI/RBO QE QE 22p 5 15 RBI QF QF X1 16 OSC1/CLKIN RA0 17 3 LT QG 14 QG CRYSTAL 15 18 C2 OSC2/CLKOUT RA1 1 74LS48 RA2 4 2 MCLR RA3 3 VDD RA4/T0CKI 22p VSS 6 RB0/INT RBO 7 RB1 RB1 8 RB2 RB2 9 RB3 10 RB3 U3:A RB4 E1 11 RB5 E2 1 2 12 RB2 RBARRA RB6 S1 13 RB7 S2 74LS04 PIC16F84A VBARRA DD DU Q1 Q2 RB1 2N3904 RBO 2N3904 R2 R3 1k 1k VSS VSS Prof. Luis Zurita 26 Microcontroladores I
  • 27. Paso 2. Diagramas de Flujo: INICIO Leyenda: Sensor Ent1 y Ent2: Sensores de entradas 1 y 2 Declarar registros: Sensor Sal1 y Sal2= Sensores de salida 1 y 2 UNI, DEC, PDel0, PDel1 Led HC= Led Hay Cupo Led NHC= Led No Hay Cupo Lógica de los sensores= Configurar 1= Desactivado Puerto A y B 0=Activado Inicializar registros: UNI, DEC Puerto A y B Led HC=ON Led NHC=OFF 1 1 MOSTRAR NO ¿Sensor NO ¿Sensor NO ¿Sensor NO ¿Sensor Ent1=0? Ent2=0? Sal1=0? Ent2=0? SI SI A3 SI A4 SI Delay 5 ms Delay 5 ms Delay 5 ms Delay 5 ms NO ¿Sensor NO ¿Sensor NO ¿Sensor NO ¿Sensor Ent1=1? Ent2=1? Sal=1? Ent2=1? SI SI SI SI NO ¿UNI= NO ¿UNI= UNI=UNI+1 UNI=UNI-1 9? 0? SI SI Led HC=OFF 1 1 UNI=0 Led NHC=ON UNI=9 NO ¿DEC= NO ¿DEC= DEC=DEC+1 DEC=DEC-1 4? 0? SI SI Led HC=OFF 1 DEC=5 1 UNI=0 Led NHC=ON DEC=0 Led HC=OFF Led NHC=ON 1 MOSTRAR NO ¿Sensor NO ¿Sensor Sal1=0? Sal2=0? SI SI A3 A4 Prof. Luis Zurita 27 Microcontroladores I
  • 28. MOSTRAR Delay 5 ms UNI → PORTA La sacamos del PDEL Display UNI= ON Return Display DEC= OFF Delay 5 ms DEC → PORTA Display UNI= OFF Display DEC= ON Delay 5 ms Display UNI= OFF Display DEC= OFF Return Paso 3. Lenguaje Ensamblador: List P=16F84A ;Encabezado del Programa include P16F84A.inc UNI equ 20H ;Zona de declaraciones DEC equ 21H ;UNI y DEC se mostrarán en los Displays PDel0 equ 22H ;PDel0 y PDel1 generarán el retardo PDel1 equ 23H ;de 5 ms org 00H goto INICIO INICIO bsf STATUS,5 ;Banco 1 para configurar Puerto A y B CLRF TRISA Prof. Luis Zurita 28 Microcontroladores I
  • 29. MOVLW B'11110000' MOVWF TRISB bcf STATUS,5 ;Banco 0 para trabajar con los puertos EXP clrf UNI ;Inicializamos los registros clrf DEC ; y los leds bcf PORTB,3 ;LED NHC=OFF bsf PORTB,2 ;LED HC=ON ENT1 call MOSTRAR ;Mostramos nro de carros en los displays ENT11 btfsc PORTB,4 ;ENTRADA 1? goto ENT2 ;No. Vamos a explorar Entrada 2 AQUI1 call DELAY5ms ;Si. Colocamos antirrebote btfss PORTB,4 ;PASÓ EL CARRO? goto AQUI1 ;No. Esperamos SUBE MOVF UNI,0 ;Si. Vamos a incrementar nro de carros SUBLW .9 BTFSS STATUS,2 ;UNI=9? GOTO SUBEU ;INCREMENTA UNIDAD CLRF UNI MOVF DEC,0 SUBLW .4 ;DEC=5? BTFSS STATUS,2 GOTO SUBED ;INCREMENTA DECENA MOVLW .5 ;Si hemos llegado a 50 vehículos MOVWF DEC ;Lo meteremos en un cerrojo bSf PORTB,3 ;LED NHC, indicando que no hay cupo bCf PORTB,2 ;LED HC CERROJO CALL MOSTRAR ;Mostramos nro de carros en los displays BTFSC PORTB,6 ;SALIO UN VEHICULO? En sensor SAL1 GOTO CERR2 ;No. Preguntamos por sensor SAL2 GOTO AQUI3 ;SI, A DECREMENTAR en SAL1 CERR2 CALL MOSTRAR ;Mostramos nro de carros en los displays BTFSC PORTB,7 ;SALIO UN VEHICULO? GOTO CERROJO ;Vamos a preguntar si salió un carro. GOTO AQUI4 ;SI, A DECREMENTAR en SAL2 SUBEU INCF UNI,1 ;Incrementamos UNIDAD GOTO ENT1 ;Vamos a monitorear las entradas Prof. Luis Zurita 29 Microcontroladores I
  • 30. SUBED INCF DEC,1 ;Incrementamos la DECENA GOTO ENT1 ;Vamos a monitorear las entradas ENT2 btfsc PORTB,5 ;ENTRADA 2? goto SAL1 ;A CHEQUEAR SALIDA 1 AQUI2 call DELAY5ms ;Introducimos antirebote btfss PORTB,5 ;Pasó el carro? goto AQUI2 ;Esperamos GOTO SUBE ;Vamos a incrementar el nro de carros SAL1 BTFSC PORTB,6 ;SALIDA 1 GOTO SAL2 ;Vamos a chequear salida 2 AQUI3 CALL DELAY5ms BTFSS PORTB,6 ;Salió el carro? GOTO AQUI3 ;Esperamos BAJA MOVF UNI,0 ;Vamos a decrementar el nro de carros SUBLW 00H ;UNI=0? BTFSS STATUS,2 GOTO BAJAU ;A DECREMENTAR UNIDAD MOVLW .9 MOVWF UNI MOVF DEC,0 SUBLW 00H BTFSS STATUS,2 GOTO BAJAD ;A DECREMENTAR DECENA CLRF UNI ;Si el nro de carros es cero CLRF DEC ;Mantendremos ese valor. GOTO ENT1 BAJAU DECF UNI,1 bcf PORTB,3 ;LED NHC=OFF bsf PORTB,2 ;LED HC=ON GOTO ENT1 BAJAD DECF DEC,1 bcf PORTB,3 ;LED NHC=OFF bsf PORTB,2 ;LED HC=ON GOTO ENT1 SAL2 BTFSC PORTB,7 ;SALIDA 2 GOTO ENT1 ;A chequear entrada 1 nuevamente AQUI4 CALL DELAY5ms BTFSS PORTB,7 ;Salió el carro? Prof. Luis Zurita 30 Microcontroladores I
  • 31. GOTO AQUI4 ;Esperamos GOTO BAJA ;Vamos a decrementar el nro de carros ;*********************************************************** ;***Subrutina para Mostrar UNIDAD y DECENA en los Displays*** ;*********************************************************** MOSTRAR MOVF UNI,0 MOVWF PORTA BCF PORTB,0 CALL DELAY5ms BSF PORTB,0 BSF PORTB,1 MOVF DEC,0 MOVWF PORTA BCF PORTB,1 CALL DELAY5ms BSF PORTB,0 BSF PORTB,1 CALL DELAY5ms return ;****************************************************** ;***Subrutina de retardo de 5 mseg, generada por el PDEL*** ;****************************************************** DELAY5ms movlw .6 ; 1 set numero de repeticion (B) movwf PDel0 ;1| PLoop1 movlw .207 ; 1 set numero de repeticion (A) movwf PDel1 ;1| PLoop2 clrwdt ; 1 clear watchdog decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop2 ; 2 no, loop decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop1 ; 2 no, loop PDelL1 goto PDelL2 ; 2 ciclos delay PDelL2 clrwdt ; 1 ciclo delay return ; 2+2 Fin. end ;Fin del programa Prof. Luis Zurita 31 Microcontroladores I